﻿// 3759. 第k个字符串.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://www.acwing.com/problem/content/3762/

给定两个整数 n
 和 k
。

用 n−2
 个 a
 和 2
 个 b
 来构成一个字符串，则一共可以构成 n(n−1)2
 个不同的字符串。

将这 n(n−1)2
 个字符串按照字典序进行排序。

请输出排好序后，排在第 k
 个的字符串。

例如，当 n=5,k=2
 时，共可以生成 10
 个不同的字符串，按字典序排列如下：

aaabb
aabab
aabba
abaab
ababa
abbaa
baaab
baaba
babaa
bbaaa
其中，排在第 2
 个的字符串为 aabab。

输入格式
第一行包含整数 T
,表示共有 T
 组测试数据。

每组数据占一行，包含两个整数 n
 和 k
。

输出格式
每组数据输出一行结果，表示答案。

数据范围
前三个测试点满足 1≤T≤10
，1≤n≤20
，1≤k≤100
。
所有测试点满足 1≤T≤10000
,3≤n≤105
,1≤k≤min(2×109,n(n−1)2)
。
同一测试点内所有 n
 的和不超过 105
。

输入样例：
7
5 1
5 2
5 8
5 10
3 1
3 2
20 100
输出样例：
aaabb
aabab
baaba
bbaaa
abb
bab
aaaaabaaaaabaaaaaaaa
*/
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 